草庐IT

Java OutOfMemoryError 奇怪的行为

全部标签

java - Arrays.copyOfRange(byte[], int, int) 奇怪行为背后的逻辑是什么?

任何人都可以向我解释Arrays.copyOfRange(byte[],int,int))的奇怪行为背后的逻辑吗??我可以用简单的例子来说明我的意思:byte[]bytes=newbyte[]{1,1,1};Arrays.copyOfRange(bytes,3,4);//Returnssingleelement(0)arrayArrays.copyOfRange(bytes,4,5);//ThrowsArrayIndexOutOfBoundsException在这两种情况下,我都将范围复制到数组边界之外(即start>=array.length),因此错误条件至少对我来说很奇怪(如果是

java - 使用流收集时 jdk8 与 jdk11 的不同行为

介绍我确实对jdk11(及更高版本)在流和收集方法方面的行为有疑问。我确实想获取流式传输资源的参数化容器的值,并在最后使用.collect(Collectors.toSet())收集这些值.问题描述当我用jdk8编译我的代码时它工作得很好。但是作为我们还要支持jdk11,我运行了编译但失败了,因为Error:(136,17)java:incompatibletypes:java.lang.Objectcannotbeconvertedtojava.util.Set(同样适用于openJdk11)用例想象一下下面的情况。我有一个基本上是数据容器的类。此容器可以包含单个值或值列表。在我的应

javac 奇怪的语法 - 表达式的错误非法开始

我遇到了一个奇怪的错误,我认为这是一个错误。这是一个最小的案例,请不要评论代码的有用性:)classFoo{staticpublicintbar(){return42;}publicintbaz(){returntrue?42:(Foo.bar()>42?41:43);}}结果:err.java:7:illegalstartofexpressionFoo.bar()>42?41:43^我试过SUNSDKjavac1.6.0_13和1.6.0_21。当我要么使bar()非泛型(只是出于好奇,不是真正的选择)去掉第7行三元表达式两边的括号所以看起来如果e是一个表达式,那么写成(e)并不总是

java - 添加/扩展由 ListeningExecutorService 创建的 Future 的行为

最终目标是为ListenableFuture添加额外的行为s基于Callable/Runnable参数的类型。我想为每个Future添加额外的行为方法。(示例用例可以在AbstractExecutorService'sjavadoc和Goetz的JavaConcurrencyinPractice的第7.1.7节中找到)我有一个现有的ExecutorService覆盖newTaskFor.它测试参数的类型并创建FutureTask的子类。这自然支持提交以及invokeAny和invokeAll.如何为ListenableFuture获得相同的效果由ListeningExecutorSer

java - 解析 PDF 时出现奇怪的空格

我需要解析PDF文档。我已经实现了解析器并使用了iText库,到目前为止它没有任何问题。但不,我需要解析另一个文档,该文档在单词中间出现非常奇怪的空格。例如我得到:VorbereitungaufdieMotorradsaison.VieleMotorradfahrer所有粗体字都应该连接起来,但PDF解析器以某种方式在字中添加了空格。但是当我将PDF中的内容复制并粘贴到文本文件中时,我没有得到这些空格。首先,我认为这是因为我正在使用的PDF解析库,但对于另一个库,我也遇到了完全相同的问题。我从解析的单词中查看了singleSpaceWidth,我注意到它在添加空格时总是在变化。我试图将

java - 如何向 JLabel 添加选取框行为

如何给JLabel的文本添加跑马灯行为?我试过了JLabelsearch=newJLabel("Search");但它不起作用。 最佳答案 请参阅http://forums.sun.com/thread.jspa?forumID=57&threadID=605616有关如何执行此操作的详细信息:)(编辑:我可能会直接在paint()方法中使用System.currentTimeMillis()而不是使用定时器,然后除法/取模(%)使其进入“x偏移”所需的范围的例子)。通过增加分度数的大小,可以改变速度((System.current

Java字节类型很奇怪?

谁能解释一下java字节类型?这不编译:byteb1=9;byteb2=1;byteb3=b1+b2;虽然这样做:byteb4=9+1;byteb5=(char)(9+1);此外,对long的赋值不起作用,即使该值适合一个字节:byteb7=(long)127;包装器会变得更奇怪编译:Byteb6=(int)3;但这不是:Integeri=(byte)3; 最佳答案 Java语言规范5.6.2二进制数值提升:“否则,两个操作数都转换为int类型”。所以Java将两个操作数都转换为int和int,所以加法的结果是一个int。补充:b3

java - 类型转换中的模棱两可的行为

我在教学生老式泛型时遇到了一个看不见的东西!我在演讲时的行为!:(我有一个简单的类publicclassObjectUtility{publicstaticvoidmain(String[]args){System.out.println(castToType(10,newHashMap()));}privatestaticTcastToType(Vvalue,Ttype){return(T)value;}}这给出输出10,没有任何错误!!!我期待这会给我一个ClassCastException,并出现一些错误,例如IntegercannotbecasttoHashMap。好奇和愤怒,

java - 连接行为 - DriverManager.getConnection() 和 DataSource.getConnection()

如果我使用DriverManager.getConnection()和DataSource.getConnection()获取连接对象,当.close()是在那些对象上调用的?在.close()方法调用之前,我从这两个不同的连接中获得了相关的Statement和ResultSet对象。在获得这两个对象后不久,如果我说connection1.close()(通过DriverManager.getConnection()),它将使连接对象无效,我不应该/允许访问相关的Statement和ResultSet对象。如果我错了,请纠正我?第二种情况,现在如果我说connection2.close

java - 使用 Mockito.when() 和泛型类型推断的奇怪泛型边缘案例

我正在编写一个使用java.beans.PropertyDescriptor的测试用例使用Mockito,我想模拟getPropertyType()的行为返回任意Class对象(在我的例子中是String.class)。通常,我会通过调用来做到这一点://wealreadydidan"importstaticorg.mockito.Mockito.*"when(mockDescriptor.getPropertyType()).thenReturn(String.class);然而,奇怪的是,这无法编译:cannotfindsymbolmethodthenReturn(java.lan